אני הולך לפתח יישום Web ב-JAVA. כן, זה יהיה ב-JAVA, מכל מיני סיבות שלא ניכנס אליהן עכשיו. תוך כדי אני בודק רשימה של פריימוורקים שהם J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container.
המאמר תורגם מכאן.
אחרי המון שעות של קריאת דוקומנטציות אני מוכן להוציא לעצמי את העיניים.
נניח שהחלטתי לבנות ארונית תבלינים למטבח.
יצא לי לעבוד עם עץ בעבר ואני חושב שאני יודע מה אני צריך: מספר קרשים וכלים בסיסיים – פטיש, סרט מדידה, מסור ומברג.
אם הייתי בונה בית ולא סתם ארון תבלינים, הייתי צריך עוד מספר כלים בנוסף לאלה.
ובכן, באתי לחנות ושאלתי את המוכר איפה אני יכול למצוא פטיש.
"פטיש?" הוא שאל. "אף אחד כבר לא קונה פטישים; זה מיושן."
הייתי מאוד מופתע ושאלתי מדוע.
– ובכן, הבעיה עם פטישים היא שיש להם הרבה מאוד סוגים: קורנס, מקבת, פטיש מסגור, פטיש עם ראש מפוצל, פטיש עם חלוץ עגול וכו'. מה אם אתה קונה סוג אחד של פטיש ואז מבין שאתה בעצם צריך פטיש אחר? אתה צריך לקנות פטיש נפרד לביצוע המשימה הבאה שלך. רוב האנשים פשוט רוצים לקבל פטיש שיתאים לכל סוגי המשימות שיש להם.
– הממ. כן, נשמע הגיוני. אתה יכול להראות לי את הפטיש האוניברסלי?
– לא. אנחנו לא מוכרים אותם יותר. הם התיישנו.
– ברצינות? מדבריך הבנתי שפטיש אוניברסלי זה הטכנולוגיה של העתיד.
– מסתבר שאם אתה מייצר רק סוג אחד של פטישים שמסוגל לבצע את כל הפעולות של שאר הפטישים, אזי הוא לא יהיה כל כך טוב עבור כל אחת מהמשימות האלה. ממש לא יעיל לדפוק מסמרים עם מקבת, ואם אתה רוצה להרוג את האקסית שלך, שום דבר לא יחליף את הפטיש עם החלוץ העגול.
– זה נכון, אבל אם אף אחד לא קונה פטישים אוניברסליים וגם לא מוכרים את כל סוגי הפטישים המיושנים, איזה פטישים אתם מוכרים?
– למעשה, אנחנו לא מוכרים יותר פטישים.
– אבל...
– מחקרים מראים שאנשים לא צריכים פטיש אוניברסלי. תמיד עדיף להשתמש בסוג הפטיש המתאים למשימה. לכן, החלטנו למכור מפעל לייצור פטישים שמסוגל לייצר כל פטיש, בדיוק כמו שאתה צריך. כל מה שאתה צריך זה לאייש את המפעל בעובדים ובחומרי גלם, ובום - יש לך פטיש בדיוק כמו שאתה צריך.
– אבל לא ממש בא לי לקנות מפעל פטישים.
– זה מעולה, כי אנחנו לא מוכרים אותם יותר.
– אבל אמרת...
– גילינו שרוב האנשים לא צריכים מפעל משלהם. יש אנשים, למשל, שלעולם לא יצטרכו פטיש עם חלוץ עגול. אולי אין להם אקסיות או שהם הרגו אותן כבר עם גרזן. לכן, זה לא הגיוני לקנות מפעל לייצור פטישים שאף אחד לא צריך.
– כן, כנראה...
– במקום זה התחלנו למכור תרשימים סכמתיים של מפעלי פטישים, שיאפשרו ללקוחות שלנו לבנות מפעל מיוחד שייצר עבורם רק את סוג הפטישים שהם באמת צריכים.
– תן לי לנחש: אתה לא מוכר אותם יותר.
– לא, ברור שלא. כפי שהתברר, אנשים לא רוצים לבנות מפעל שלם רק כדי לייצר זוג פטישים. תשאיר את מלאכת הבניה לאנשי מקצוע, זה מה שאני תמיד אומר.
– וכאן אני מסכים אתך.
– כן, לכן הפסקנו למכור את התרשימים והתחלנו למכור מפעלים של מפעלי פטישים. כל מפעל מפעלים נבנה עבורך על ידי מומחים בתחום, ואתה לא צריך לדאוג לשום נושא בנייה של המפעל. אתה מקבל את כל יתרונות הבעלות על מפעל פטישים המייצר פטישים שעונים על הצרכים הייחודיים שלך.
– טוב, זה לא ממש...
– אני יודע מה אתה אומר! אנחנו לא מוכרים מפעלי מפעלים של פטישים. משום מה, מעט מאוד אנשים קנו מפעלי מפעלים של פטישים, ולכן באנו עם פתרון חדש לבעיה.
– אה...
– כשלקחנו צעד אחד אחורה והסתכלנו על התשתית הגלובלית של כלי עבודה, מצאנו שאנשים מתוסכלים מזה שהם צריכים לנהל מפעל של מפעלי פטישים וגם את מפעל הפטישים שנוצר; זה המון עבודה אם אתה גם צריך לנהל מפעל של מפעלים לסרטי מדידה, מפעל של מפעלים למסורים ומפעל של מפעלים למברגים.
– כן, זה בטוח.
– לכן השבוע אנחנו מציגים מפעל ייחודי של מפעלים של מפעלי כלים, כדי שתוכל לייצר כל מפעל של מפעלי כלים באמצעות מפעל אחד משותף, וכל אחד ממפעלי המפעלים האלה ייצר מפעל התואם לדרישות שלך לכלי.
אוסף הכלים שתקבל בסוף התהליך יתאים לפרויקט שלך בצורה אידאלית. יהיה לך את הפטיש המתאים ביותר למשימה ואת סרט המדידה הכי נוח למטרה הזו, וכל זה כמובן בלחיצת כפתור אחת בלבד. (כמובן שתצטרך לעבוד קצת על ההגדרות כדי לגרום לכל זה לפעול בדיוק כמו שאתה רוצה.)
– אזי אין לכם שום פטישים? בכלל שום דבר?
– לא. אם אתה רוצה לבנות ארונית תבלינים באמת באיכות גבוהה אתה צריך משהו יותר מתקדם מסתם פטיש מחנות.
– ומה, כולם עושים עכשיו ככה? כולם משתמשים במפעל מפעלי מפעלים לכלי עבודה, בכל פעם שהם צריכים פטיש?
– כן.
– טוב... אני חושב שהבנתי מה צריך לעשות. אם היום זה נעשה ככה, עדיף לי ללמוד לעשות גם כך.
– טוב מאוד.
– הדבר הזה מגיע עם דוקומנטציה, נכון?
____
המאמר תורגם מכאן.
אמנם המחבר מקצין את הסיפור ואני לא מסכים אִתו בכל, אבל לפעמים זה באמת נראה ככה כשמסתכלים על פריימוורקים מסוימים כמו Zend. באופן כללי, פריימוורקים כן מצליחים לקצר בצורה משמעותית את זמני הפיתוח בלי factory of factories of factories. חוץ מזה, כולם יודעים שיש פריימוורק PHP אחד שאני ממש אוהב. :)
תגובות לכתבה:
בכל בדיחה יש גרעין אמת..
לא בדיוק הבנתי
הפטישים פה דפקו לי תמוח
אני גם ממש לא אוהב פריימוורקים,
מהרבה סיבות, בעיקר כי אני מגניב
חח, זה אפילו לא ניתן לוויכוח, רומן :)
מזכיר לי דו"ח ביצועים של הדפסת Hello World באמצעות Zend:
יותר מ-5,5 אלף קריאות של פונקציות (http://www.ruilog.com/blog/view/b6f0e42cf705.html).
מעניין שהתוצאות של ZEND כל כך גרועות ואנשים עדין משתמשים בדבר הזה -.-
ואני חייב לנסות את הyaf נראה די טוב לפי התוצאות
אני משתמש_156285
לא הייתי מחובר O.O
אחלה תרגום, תודה רבה. :)
yaf כתוב ב C בצורת הרחבה ל PHP, בגלל זה הוא כזה מהיר.
העניין של zend framework זה שהשם שלה מתחיל ב zend framework וכמו שחברי שעובד בחברה באיזור הבורסה ברמת גן אמר לי: ב zf אם אתה לא אוהב משהו - אפשר ללכת לבניין השכן ולתת למישהו בפרצוף על זה. בפריימוורקים אחרים לא.
אהבתי.
אמיר סימן טוב.
אחלה סיפור!
קצת מוקצן באמת ולא נכון לגבי כל פרימוורק, אני למשל מאוד אוהב את Yii אבל לגבי Zend מסכים לגמרי בכל מקרה פרימוורק לא משנה איזה גורם לאתר להיות יותר איטי מהשיטה הישנה, אבל זה שווה את הזמן בפיתוח שמתקצר :-)
בגלל שהזכירו פה למעלה את עניין ההשואות של פריימורקס על בסיס 'שלום עולם', אני חייב להעיר שדברים מעין אלו הם בין הדברים הכי מפגרים שיש באינטרנט. לציין השוואה כזאת כטענה שפריימוורק אחד עדיף על השני דווקא כתגובה על פוסט שמציין שפריימוורק יעיל רק אם משתמשים בו בצורה נכונה למקרים מתאימים זה אפילו עוד יותר מטומטם!
אם יש יותר קריאות לפונקציות זה אומר שמשהו מתבצע מאחורי הקלעים אם זה הולך לעזור לך או לא, רק אתה יודע! בתור מפתח אתה צריך להחליט באיזה פריימורק להשתמש אם בכלל עבור כל פרוייקט. אפשר להסתכל על פריימוורק שמבצע (או מבצעת?) יותר דברים ברקע כמכביד אבל בד"כ זה רק מעיד שהוא מנסה לעשות יותר דברים במקום להפיל את הכל על המפתח. השאלה היא אם אתה בכלל צריך את מה שמתבצע מאחורי הקלעים, אם כן אז זה בכלל לא מכביד, בדיוק להיפך וזאת המטרה!
אם אתה לא צריך אולי אתה בכלל לא צריך פריימוורק, השוואות כאלה פשוט מיותרות ונובעות בד"כ מחוסר ניסיון וקוצר רוח.
המגיב מעליי - captain obvious.
זה מובן מאילו. אבל אם עבור פעולה פשוטה יש כ"כ הרבה בזבוז משאבים, גם בשביל כמה פעולות, ועוד מסובכות, יהיה אפילו יותר גרוע. זאת עובדה. יש פרימוורקים חכמים יותר, ויש חכמים פחות.
משתמש 186517: חבר בצוות Zend שנעלב :-)
מה אתם חושבים על YII?
http://www.flickr.com/photos/raindrift/7095238893/in/set-72157629492908038
גם אני לא אוהב להשתמש ב framework, הכי טוב להשאר עם מה שיש ולא להתלונן.
http://www.willa.me/2013/11/the-six-most-common-species-of-code.html -> קוד שנכתב אצל חברה גדולה :-)